Skip to main content

用户响应

一个值发生变化时,请用户进行确认

下面的脚本演示了在报销单中,如果选择了“代别人报销”,则会弹出一个用户确认的对话框。

thisApp.fieldOnChanged = async (ctx) => {
const form = ctx.getFormContext().form;
const currentCtx = ctx.getCurrentContext();

if (currentCtx.fieldName === 'isEntrust' && currentCtx.currentField.value) {
// 选择了代别人报销
// 提示用户确认一下
if (! (await qiqi.ui.dialog.confirm('确认要代别人报销吗?'))) {
// 选择了 取消
// 重新设置值为 false
currentCtx.currentField.value = false;
} else {
// 选择了确认
// ...
}
}
};

给页面加上自定义按钮

下面的脚本演示了如何给报销单加上自定义按钮,用户可以点击这个按钮查询自己所有已经报销支付的金额合计数。

thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;

// 给报销单加上一个自定义按钮
ctx.getPageContext().getActionBar().addButton({
key: 'clickMe',
text: '查已报销金额',
onClick: async () => {
// 这里我们通过 aggregate 功能汇总已经支付的金额
const resp = await ctx.getCurrentContext()
.entityQuery(form.name)
.aggregate({
sum: {
amount: true, // 报销金额
paymentAmount: true, // 支付金额
},
where: {
applyUser: qiqi.runtime.loginUser.id,
billStatusObject: 'effective' // 生效的单据
}
});

const paymentAmount = qiqi.util.get(resp, 'sum.paymentAmount', 0);

if (paymentAmount === 0) {
qiqi.ui.dialog.alert('Wow!还没有已经支付的金额入账哦');
} else {
qiqi.ui.dialog.alert(`Wow!你已经入账了 ${qiqi.format.formatNumber(paymentAmount, 'n2')} 了哦`);
}

},
})
}